home *** CD-ROM | disk | FTP | other *** search
/ BCI NET / BCI NET Dec 94.iso / archives / programming / libraries / newiff.lha / NewIFF / NewIFF39.lha / newiff39 / iffp / ilbmapp.h < prev    next >
C/C++ Source or Header  |  1993-09-28  |  4KB  |  102 lines

  1.  
  2. /* ilbmapp.h
  3.  * - definition of ILBMInfo structure
  4.  * - inclusion of includes needed by modules and application
  5.  * - application-specific definitions
  6.  *
  7.  * 07/03/91 - added ilbm->stags for screen.c
  8.  * 07/92 - added 32-bit-per-gun variables
  9.  * 09/92 - flags for bestfit and usermodeid
  10.  * 09/93 - flag for strip monitor
  11.  */
  12. #ifndef ILBMAPP_H
  13. #define ILBMAPP_H
  14.  
  15. #include "iffp/ilbm.h"
  16.  
  17. struct ILBMInfo {
  18.     /* general parse.c related */
  19.     struct  ParseInfo ParseInfo;
  20.  
  21.     /* The following variables are for
  22.      * programs using the ILBM-related modules.
  23.      * They may be removed or replaced for
  24.      * programs parsing other forms.
  25.      */
  26.     /* ILBM */
  27.     BitMapHeader Bmhd;        /* filled in by load and save ops */
  28.     ULONG    camg;            /* filled in by load and save ops */
  29.     Color4    *colortable;        /* allocated by getcolors */
  30.     ULONG    ctabsize;        /* size of colortable in bytes */
  31.     USHORT    ncolors;        /* number of color registers loaded */
  32.     USHORT  Reserved1;
  33.  
  34.     /* for getbitmap.c */
  35.     struct BitMap *brbitmap;    /* for loaded brushes only */
  36.  
  37.     /* for screen.c */
  38.     struct Screen *scr;        /* screen of loaded display   */
  39.     struct Window *win;        /* window of loaded display   */
  40.     struct ViewPort *vp;        /* viewport of loaded display */
  41.     struct RastPort    *srp;        /* screen's rastport */
  42.     struct RastPort *wrp;        /* window's rastport */
  43.     BOOL TBState;            /* state of titlebar hiddenness */
  44.  
  45.     /* caller preferences */
  46.     struct NewWindow *windef;    /* definition for window */
  47.     UBYTE *stitle;        /* screen title */
  48.     LONG stype;        /* additional screen types */
  49.     WORD ucliptype;        /* overscan display clip type */
  50.     BOOL EHB;        /* default to EHB for 6-plane/NoCAMG */
  51.     BOOL Video;        /* Max Video Display Clip (non-adjustable) */
  52.     BOOL Autoscroll;    /* Enable Autoscroll of screens */
  53.     BOOL Notransb;        /* Borders not transparent to genlock */
  54.     ULONG *stags;        /* Additional screen tags for 2.0+ screens */
  55.     ULONG IFFPFlags;    /* For CBM-designated use by IFFP modules  */
  56.     VOID  *IFFPData;    /* For CBM-designated use by IFFP modules  */
  57.     ULONG UserFlags;    /* For use by applications for any purpose */
  58.     VOID  *UserData;    /* For use by applications for any purpose */
  59.     /* --- New --- */
  60.     WORD  *colorrecord;    /* Passed to LoadRGB32 (ncolors,firstreg,table) */
  61.     Color32 *colortable32;    /* 32-bit-per-gun representation of colors      */
  62.     ULONG crecsize;        /* Bytes allocated including extra WORDs        */
  63.  
  64.     ULONG usermodeid;
  65.     ULONG Reserved[7];
  66.     /* -------------------------------- */
  67.     /* Application-specific variables may go here - but this may move!!!
  68.      * If this moves, you will have to recompile all of your modules.
  69.      * If you want something that won't move, use the UserData above.
  70.       */
  71.     };
  72.  
  73. /* Flags for IFFPFlags */
  74.  
  75. /* Don't allocate or use a 32-bit-per-gun Color Table under V39 or above */
  76. #define IFFPB_NOCOLOR32    0
  77. #define IFFPF_NOCOLOR32    (1L << IFFPB_NOCOLOR32)
  78. /* Force use of ilbm->usermodeid if mode is available */
  79. #define IFFPB_USERMODE    1
  80. #define IFFPF_USERMODE    (1L << IFFPB_USERMODE)
  81. /* Force use of BestFit() under V39 only */
  82. #define IFFPB_BESTFIT    2
  83. #define IFFPF_BESTFIT    (1L << IFFPB_BESTFIT)
  84. /* Disable centering */
  85. #define IFFPB_NOCENTER    3
  86. #define IFFPF_NOCENTER    (1L << IFFPB_NOCENTER)
  87. /* Strip monitor ID from loaded or saved CAMG modeid */
  88. #define IFFPB_NOMONITOR    4
  89. #define IFFPF_NOMONITOR    (1L << IFFPB_NOMONITOR)
  90.  
  91. /* Disable auto 4->8 bit CMAP conversion on apparently shifted 4-bit guns */
  92. #define IFFPB_CMAPOK    7
  93. #define IFFPF_CMAPOK    (1L << IFFPB_CMAPOK)
  94.  
  95. /* referenced by modules */
  96.  
  97. extern struct Library *IFFParseBase;
  98.  
  99. /* protos for application module(s) */
  100.  
  101. #endif
  102.